using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("GameToastMgr")]
	public class GameToastMgr : MonoBehaviour
	{
		public enum SEASON_TOAST_THRESHHOLDS
		{
			NONE = 0,
			ONE = 1,
			TWO = 2,
			THREE = 3,
			FOUR = 4,
			FIVE = 5,
			TEN = 10
		}

		public enum TOAST_TYPE
		{
			NORMAL,
			NO_COUNT
		}

		public static float FADE_IN_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "GameToastMgr", "FADE_IN_TIME");

		public static float FADE_OUT_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "GameToastMgr", "FADE_OUT_TIME");

		public static float HOLD_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "GameToastMgr", "HOLD_TIME");

		public static int MAX_DAYS_TO_SHOW_TIME_REMAINING => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "GameToastMgr", "MAX_DAYS_TO_SHOW_TIME_REMAINING");

		public QuestProgressToast m_questProgressToastPrefab => method_3<QuestProgressToast>("m_questProgressToastPrefab");

		public SeasonTimeRemainingToast m_seasonTimeRemainingToastPrefab => method_3<SeasonTimeRemainingToast>("m_seasonTimeRemainingToastPrefab");

		public List<GameToast> m_toasts => method_3<Class271<GameToast>>("m_toasts")?.method_25();

		public int m_numToastsShown => method_2<int>("m_numToastsShown");

		public GameToastMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public GameToastMgr(IntPtr address)
			: this(address, "GameToastMgr")
		{
		}

		public static GameToastMgr Get()
		{
			return MonoClass.smethod_15<GameToastMgr>(TritonHs.MainAssemblyPath, "", "GameToastMgr", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void FireAllQuestProgressListeners(int achieveId, int progress)
		{
			method_8("FireAllQuestProgressListeners", achieveId, progress);
		}

		public bool AddToast(UserAttentionBlocker blocker, GameToast toast, string callerName)
		{
			return method_11<bool>("AddToast", new object[3] { blocker, toast, callerName });
		}

		public bool AreToastsActive()
		{
			return method_11<bool>("AreToastsActive", Array.Empty<object>());
		}

		public void FadeOutToast(GameToast toast)
		{
			method_8("FadeOutToast", toast);
		}

		public void DeactivateToast(GameToast toast)
		{
			method_8("DeactivateToast", toast);
		}

		public void UpdateToastPositions()
		{
			method_8("UpdateToastPositions");
		}

		public void UpdateQuestProgressToasts()
		{
			method_8("UpdateQuestProgressToasts");
		}

		public void AddQuestProgressToast(int achieveId, string questName, string questDescription, int progress, int maxProgress)
		{
			method_8("AddQuestProgressToast", achieveId, questName, questDescription, progress, maxProgress);
		}

		public void AddSeasonTimeRemainingToast()
		{
			method_8("AddSeasonTimeRemainingToast");
		}
	}
}
